The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Different computers run different operating systems (OSs). If an application vendor, such as Mozilla, desires to have an application run on all OS platforms, then an application should be tested on each OS. However, there are many OSs including many different Linux distributions. Thus, testing an application on each OS may take a significant amount of time.
To compound the problem, some OS providers release a new version of their OSs relatively frequently. For example, whereas Microsoft's OS is released every 3-5 years, Apple releases a new version of Mac OS every 18 months. Further, Fedora Linux releases a new version of its OS bi-yearly. Open Suse Linux also releases a new version of its OS bi-yearly.
It is not guaranteed that an application that runs on one version of an OS is able to run on another version of the OS. This is at least partly due to the fact that different releases have different versions of libraries and the libraries might not be backward compatible. Thus, if an application vendor does not provide an application's executable binary for a particular OS, then a user must download the application's source code, compile the source code, and generate the executable binary on the user's computer.
However, requiring the user to perform certain steps lessens the quality of the user's experience and may act as a deterrent to many users from using the application. On the other hand, an application vendor wants to limit the amount of quality assurance (QA) cost to ensure OS compatibility. Thus, many times, an application vendor may only ensure that certain (e.g., popular) OS releases are supported while hoping that the application will run properly on the other OS releases.